1. Field of the Invention
The present invention relates to an apparatus and method for decoding data of an unknown frame length, and more particularly to an apparatus and method for decoding data of an unknown frame length capable of selectively outputting appropriate data from preliminarily decoded data which are decoded corresponding to each of the possible data frame lengths.
2. Description of the Related Art
In a digital communication system, a Viterbi Decoder generally decodes Tree codes which are used to correct data errors. The Tree codes are transmitted mainly by two methods according to the standard of the communication system. One method is to transmit the data successively, without limitation on the length of the data frame. The other method is to transmit the data with a uniform predetermined length of data frame.
FIG. 1 is a block diagram illustrating a conventional Viterbi Decoder. The Viterbi Decoder 200 includes a branch metrics processor 210, an ACS part (Add, Compare & Select part) 230, a path metrics storing part 250, a traceback data storing part 270, and a traceback control part 290. The branch metrics processor 210 calculates a set of branch metrics by comparing received data with a standard level. The ACS part 230 obtains a path metrics value of a current state by adding path metrics of a previous state to branch metrics input from the branch metrics processor 210, determines path selection data with the path metrics value, and outputs such determined data path selection to the traceback data storing part 270. The ACS part 230 also performs a controlling operation to ensure no overflow of path metrics values of the respective states. The path metrics storing part 250 stores the path metrics values of the respective states which are calculated by the ACS part 230. The path selection data is stored in the traceback data storing part 270, and trace-backed and decoded into output signals of the Viterbi Decoder 200 under the control of the traceback control part 290.
Referring to FIG. 2, when there are a regular frame length (E) and a decoding depth (D), the control operation of the traceback control part 290 of the Viterbi Decoder 200 (FIG. 1) are as follows. First, a parameter (i) for counting data input into the traceback data storing part 270 is initialized (step SS1). Then the parameter (i) is increased (step SS2). Next, i-th path selection data is stored in the traceback data storing part 270 (step SS3). Then the parameter (i) is compared with the decoding depth (D) (step SS4). If the parameter (i) is determined to be smaller than the decoding depth (D) in the decoding depth comparing step (step SS4), the parameter increasing step (SS2) is performed. That is, until the D-th data is input, the data input to the traceback data storing part 270 are continuously stored in the traceback data storing part 270.
If the parameter (i) equals to, or is greater than the decoding depth (D) in the decoding depth comparing step (SS4), a frame end checking step (step SS5) is performed, that is, the parameter (i) is compared with the frame length (E). The frame end checking step (SS5) checks whether the input data is the end data of the data frame. If the input data is not the end data of the data frame in the frame end checking step (SS5), in the next step (step SS6), the data stored in the traceback data storing part 270 are trace-backed, and the end data of the trace-backed data is output as the output data of the Viterbi decoder 200, and the parameter increasing step (SS2) is performed.
In the meantime, if the input data is the end data of the frame, i.e., the E-th data in the frame end checking step (SS5), in the next step (SS7), the data stored in the traceback data storing part 270 are trace-backed, and all the trace-backed data bits are output. Accordingly, the decoding operation of the Viterbi decoder is completed.
The above-described decoder, however, cannot efficiently decode data of unknown frame length. That is, when decoding data of unknown frame length, the conventional decoder needs to first detect the frame length by using a Cyclic Redundancy Check (CRC), zero path metrics, and minimum path metrics, or the like. In addition to the CRC, zero path metrics, and minimum path metrics for detecting the frame length of the data, another inconvenience is brought in that the decoding has to be repetitiously performed corresponding to each of the possible data frame lengths. Accordingly, since decoding has to be performed corresponding to the number (n) of possible frame lengths, decoding efficiency is deteriorated. Still another problem is that the decoder requires considerably large memory capacity, since there has to be a separate storing part for storing the decoded data corresponding to each of the possible frame lengths.